package com.info33.platform.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.info33.platform.system.entity.SysFile;
import com.info33.platform.system.vo.SysFileVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author admin
 */
@Repository
public interface SysFileDao extends BaseMapper<SysFile> {


    /**
     * 根据 id 集合，返回列表数据
     *
     * @param ids id 集合
     * @return vo
     */
    List<SysFileVO> listByIds(@Param("ids") String ids);

    /**
     * 根据 id 集合，返回列表数据
     *
     * @param ids id 集合
     * @param can 是否可获取文件路径
     * @return vo
     */
    List<SysFileVO> canReadFileList(@Param("ids") String ids, @Param("can") Boolean can);

    /**
     * 根据 id ，返回某条数据
     *
     * @param id  id
     * @param can 是否可获取文件路径
     * @return vo
     */
    SysFileVO canReadFileById(@Param("id") Long id, @Param("can") Boolean can);

    /**
     * 取第一张图片：图片 / 视频截取图片（图片优先级更高）
     * id 为 null 则不进行此次查询
     *
     * @param ids  String
     * @param flag 是否进行查询
     * @return String 图片全路径
     */
    String imgUrl(@Param("ids") String ids, @Param("flag") Boolean flag);

    /**
     * 取第一张图片：图片 / 视频截取图片（图片优先级更高）
     * id 为 null 则不进行此次查询
     *
     * @param id  String
     * @param flag 是否进行查询
     * @return String 图片全路径
     */
    String imgUrlById(@Param("id") String id, @Param("flag") Boolean flag);

    /**
     * 文件集合，对应上传人信息
     *
     * @param ids-
     * @return -
     */
    List<SysFileVO> listWithUserInfo(@Param("ids") String ids);

    /**
     * 是否进行 db 读取
     *
     * @param id 文件 id
     * @param db 是否读取
     * @return -
     */
    SysFileVO dbOrNullByFlag(@Param("id") Long id, @Param("db") Boolean db);

    /**
     * 是否进行 db 读取
     *
     * @param id 文件 id
     * @return id 为空，则不进行读取
     */
    SysFileVO dbOrNullById(@Param("id") Long id);
}